.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70FC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,269AD1D3C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L02
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L07
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,2291F400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,269AD1E7628
call      qword ptr [7FFCF7024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L06
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L06
M00_L02
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
jmp       short M00_L07
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L06
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DF7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF78976A8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0D9EAEBA2B075
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF7024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0D9EAEBA2B075
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF700FD20]
mov       rcx,0D9EAEBA2B075
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7895350]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2291F400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF7837198]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF7834F90]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF787C330]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF78372A0]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F5C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2291F401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7173B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0D9EAEBA2B075
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF700FE40]
mov       rcx,0D9EAEBA2B075
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M03_L06
cmp       r8d,esi
jl        near ptr M03_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M03_L02
M03_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M03_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M03_L05
M03_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L03
 
cmp       ebp,r10d
ja        short M03_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M03_L00
M03_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M03_L01
M03_L05
 
call      qword ptr [7FFCF704E9E8]
int       3
M03_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L07
 
test      eax,eax
jne       short M03_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L03
M03_L08
 
call      qword ptr [7FFCF704E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L02
test      r8b,18
je        short M04_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M04_L00
 
ret
M04_L01
 
test      r8b,4
je        short M04_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M04_L00
M04_L02
 
cmp       r8,40
ja        short M04_L06
M04_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L10
M04_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L05
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M04_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M04_L00
M04_L06
 
cmp       r8,800
ja        short M04_L09
mov       r9,r8
shr       r9,6
M04_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L07
and       r8,3F
cmp       r8,10
ja        short M04_L03
jmp       short M04_L04
M04_L08
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L09
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M04_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M04_L04
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,269AD1D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70CC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,1B0C2313C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,17034400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1B0C2327628
call      qword ptr [7FFCF6FF4810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DC7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF78676A8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,2CC8D1AA9E65
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF6FF4228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,2CC8D1AA9E65
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FDFD20]
mov       rcx,2CC8D1AA9E65
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FAF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FAF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7865350]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,17034400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF7807198]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF7804F90]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF784C330]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF78072A0]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F2C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,17034401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7143B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,2CC8D1AA9E65
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FDFE40]
mov       rcx,2CC8D1AA9E65
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1B0C2310008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF701E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF701E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70DC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,225D36B3C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1E545800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,225D36C7628
call      qword ptr [7FFCF7004810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DD7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF7877DC8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0A600113AE66C
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF7004228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0A600113AE66C
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FEFD20]
mov       rcx,0A600113AE66C
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FBF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FBF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7875A40]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1E545800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF7817AB0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF78158A8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF785CC18]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF7817BB8]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F3C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1E545801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7153B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0A600113AE66C
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FEFE40]
mov       rcx,0A600113AE66C
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,225D36B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF702E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF702E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70CC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,299C7603C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,25935800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,299C7617628
call      qword ptr [7FFCF6FF4810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DC7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF786C1E0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,7A05A51EE0D1
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF6FF4228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,7A05A51EE0D1
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FDFD20]
mov       rcx,7A05A51EE0D1
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FAF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FAF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7865950]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,25935800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF7807AB0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF78058A8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF784C8E8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF7807BB8]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F2C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,25935801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7143B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,7A05A51EE0D1
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FDFE40]
mov       rcx,7A05A51EE0D1
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,299C7600008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF701E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF701E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70FC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,29199113C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,2510B000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,29199127648
call      qword ptr [7FFCF7024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DF7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF789D1D0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,85F319389887
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF7024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,85F319389887
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF700FD20]
mov       rcx,85F319389887
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7896D78]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2510B000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF783D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF7836F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF787E118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF783D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F5C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2510B001DC0
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7150C38]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,85F319389887
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF700FE40]
mov       rcx,85F319389887
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,29199110008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF704E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF704E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70FC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,28CD5A03C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,24C43C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,28CD5A17648
call      qword ptr [7FFCF7024810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DF7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF789D1D0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0C1E8628060B6
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF7024228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0C1E8628060B6
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF700FD20]
mov       rcx,0C1E8628060B6
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FDF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FDF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7896D78]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,24C43C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF783D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF7836F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF787E118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF783D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F5C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,24C43C01DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7173B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0C1E8628060B6
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF700FE40]
mov       rcx,0C1E8628060B6
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,28CD5A00008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF704E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF704E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70DC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,1EC026F3C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1AB70800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1EC02707648
call      qword ptr [7FFCF7004810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DD7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFCF787D1D0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,42BA687C00FC
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF7004228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,42BA687C00FC
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FEFD20]
mov       rcx,42BA687C00FC
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6FBF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6FBF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7876D78]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1AB70800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF781D1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF7816F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF785E118]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF781D2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F3C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1AB70801DC8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF713C490]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,42BA687C00FC
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FEFE40]
mov       rcx,42BA687C00FC
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1EC026F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF702E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF702E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L02
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
cmp       r8,40
ja        short M05_L06
M05_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L10
M05_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L05
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M05_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M05_L00
M05_L06
 
cmp       r8,800
ja        short M05_L09
mov       r9,r8
shr       r9,6
M05_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L07
and       r8,3F
cmp       r8,10
ja        short M05_L03
jmp       short M05_L04
M05_L08
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L09
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M05_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M05_L04
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.BytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFCF70BC150]; System.Text.StringBuilder.set_Capacity(Int32)
mov       rdx,222CAE33C54
mov       rcx,[rsi+8]
mov       r8d,[rsi+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        near ptr M00_L05
movsxd    r8,r8d
lea       rcx,[rcx+r8*2+10]
mov       word ptr [rcx],30
mov       word ptr [rcx+2],78
mov       [rsi+18],eax
M00_L00
 
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L04
M00_L01
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L08
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1E23D000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,222CAE47648
call      qword ptr [7FFCF6FE4810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L03
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L03
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        near ptr M00_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L06
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L02
 
mov       [rsi+18],ebp
M00_L03
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L01
M00_L04
 
mov       rcx,rsi
call      qword ptr [7FFCF70AB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rsi,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rsi+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L05
 
mov       rcx,rsi
mov       r8d,2
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L00
M00_L06
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L02
M00_L07
 
mov       rcx,rsi
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L03
M00_L08
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       ecx,esi
mov       rdx,222CAE30390
call      qword ptr [7FFCF71C58D8]; System.ArgumentOutOfRangeException.ThrowIfNegative[[System.Int32, System.Private.CoreLib]](Int32, System.String)
cmp       esi,[rbx+20]
jg        short M01_L02
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L03
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L04
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFCF6DB7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,1232ADF4C
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFCF6FE4228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,1232ADF4C
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FCFD20]
mov       rcx,1232ADF4C
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFCF6F9F8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFCF6F9F360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFCF7856B20]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1E23D000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFCF77FD1D0]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFCF77F6F58]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFCF783DDE8]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFCF77FD2D8]
lea       rcx,[rbp+40]
call      qword ptr [7FFCF6F1C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1E23D001DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFCF7133B68]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,1232ADF4C
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFCF6FCFE40]
mov       rcx,1232ADF4C
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,222CAE30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L06
cmp       r8d,esi
jl        near ptr M04_L06
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jg        short M04_L02
M04_L00
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFCF70BCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        short M04_L04
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        short M04_L05
M04_L01
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L02
 
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L07
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L08
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L03
 
cmp       ebp,r10d
ja        short M04_L05
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
jmp       near ptr M04_L00
M04_L04
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L01
M04_L05
 
call      qword ptr [7FFCF700E9E8]
int       3
M04_L06
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFCF736F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L07
 
test      eax,eax
jne       short M04_L08
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L03
M04_L08
 
call      qword ptr [7FFCF700E9D0]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1C97B000428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,20A0D0E7628
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF78CC0F0]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF78CC0F0]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       ecx,ecx
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF78CC0F0]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF78CC0F0]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF78CC0F0]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+30],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,20A0D0D0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,71CED623DE27
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,71CED623DE27
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,20A0D0D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,28E38400428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2CECA2C7628
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF78CEAA8]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF78CEAA8]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF78CEAA8]
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF78CEAA8]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF78CEAA8]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+30],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,2CECA2B0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,7D9721A6BE62
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,7D9721A6BE62
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2CECA2B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1416F800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,18201667628
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L12
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L14
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L12
M00_L11
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L12
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        near ptr M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L13
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L14
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L12
jmp       short M00_L11
M00_L15
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L13
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       r15,rsi
M00_L21
 
mov       [rsp+38],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       r15,18201650008
jmp       short M00_L21
M00_L24
 
mov       r15,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BB0B71BFB277
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BB0B71BFB277
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,18201650008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFD61817370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFD61830750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2B856000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2F8E3DE7628
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,2F8E3DD0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1F2DAA7D76C2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1F2DAA7D76C2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L07
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L04
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        near ptr M02_L03
jmp       near ptr M02_L04
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2F8E3DD0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFD61817370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFD61830750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,15CCF800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,19D61817648
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,19D61800008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0ABF2A3D5F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0ABF2A3D5F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,19D61800008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFD61817370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFD61830750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1F48A800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,23518767648
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF76DECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,23518750008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,627C61BA0867
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,627C61BA0867
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,23518750008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFD61817370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFD61830750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,22637000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,266C4CE7648
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,266C4CD0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B42B2D6B7709
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B42B2D6B7709
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,266C4CD0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFD61817370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFD61830750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,14C7A000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,18D08067648
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFD60DB2E48
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFCF76EECE8]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,18D08050008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5E8EF9170B5D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5E8EF9170B5D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,18D08050008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFD61817370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFD61830750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,2327A000428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2730BE67628
call      qword ptr [7FFCF6E86C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,2BFB0BE84C76
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,2BFB0BE84C76
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70566E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2730BE50008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,21C61C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,25CEFA47628
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,91F93699E93B
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,91F93699E93B
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25CEFA30008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,221BC800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2624E797628
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0C417F8D00D9E
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0C417F8D00D9E
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2624E780008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,19568400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1D5FA1F7628
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,6B1F6431A1CF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,6B1F6431A1CF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1D5FA1E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1F553C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,235E1997648
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,56BE421FA1E2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,56BE421FA1E2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,235E1980008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1FD23C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,23DB1A07648
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A71F09F09DFC
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A71F09F09DFC
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,23DB19F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1F1DC400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2326E0E7648
call      qword ptr [7FFCF6E86C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0FADBAFE043CE
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0FADBAFE043CE
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70566E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2326E0D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,27A7E800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2BB0C687648
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B20C5F2A6919
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B20C5F2A6919
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2BB0C670008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,20D5E800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rbp
mov       [rsp+48],rax
lea       r8,[rsp+40]
mov       [rsp+28],r8
mov       dword ptr [rsp+30],2
lea       r8,[rsp+28]
mov       rdx,24DF0557628
call      qword ptr [7FFCF6E66C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70AB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,9DE7587E321F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70B70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70B71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,9DE7587E321F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70B7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70366E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70BCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF700E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF700E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,24DF0540008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,21394000428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,25426027628
call      qword ptr [7FFCF6E86C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,52065BE2CF0
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,52065BE2CF0
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70566E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25426010008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,29E2DC00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rbp
mov       [rsp+48],rax
lea       r8,[rsp+40]
mov       [rsp+28],r8
mov       dword ptr [rsp+30],2
lea       r8,[rsp+28]
mov       rdx,2DEBFA07628
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B0775BCC16E9
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B0775BCC16E9
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2DEBF9F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,288FEC00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2C98CCD7628
call      qword ptr [7FFCF6E86C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0FE619B08E01E
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0FE619B08E01E
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70566E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2C98CCC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1736FC00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,1B3FD8B7648
call      qword ptr [7FFCF6E86C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,78A7D1FD9E87
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,78A7D1FD9E87
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70566E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1B3FD8A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1FE33000428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,23EBCF37648
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5B083A9E83CF
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5B083A9E83CF
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,23EBCF20008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1D2BA800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,213485F7648
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0DCA0C91611C6
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0DCA0C91611C6
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,213485E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1C0BD800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2014B687648
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,78FC8DE9B86
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,78FC8DE9B86
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2014B670008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,17AF1800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rcx
mov       rcx,1BB834B9078
mov       [rsp+48],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],2
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1BB834C7628
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,629210438D0D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,629210438D0D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1BB834B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1BAE8800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1FB7A5F9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1FB7A607628
call      qword ptr [7FFCF6EA6C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0AEE2D4B952CD
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0AEE2D4B952CD
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1FB7A5F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,14B1FC00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,18BB1A89078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,18BB1A97628
call      qword ptr [7FFCF6E86C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,7C175E0C09D9
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,7C175E0C09D9
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70566E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,18BB1A80008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,19EF6C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1DF88C49078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1DF88C57628
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,6F05AC2EE38F
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,6F05AC2EE38F
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1DF88C40008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,2A984000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2EA11F19078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2EA11F27648
call      qword ptr [7FFCF6E96C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1DA8EF89F3E6
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1DA8EF89F3E6
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2EA11F10008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,251FBC00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,29289959078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,29289967648
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,73C3E9433B1D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,73C3E9433B1D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,29289950008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,2DF17800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,31FA57A9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,31FA57B7648
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,6F2DD5551F7C
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,6F2DD5551F7C
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,31FA57A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,14513400428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,185A1369078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,185A1377648
call      qword ptr [7FFCF6E76C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B13DF6206D3
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFCF70C70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B13DF6206D3
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFCF70C7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFCF70466E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,185A1360008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7865218]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,249B3005970
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,28A41001C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFCF70CC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,28A41000008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,249B3005970
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7885218]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,27489C03978
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2B51BC71C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFCF70EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2B51BC70008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,27489C03978
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7885938]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,197F6405970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1D884271C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFCF70EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1D884270008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,197F6405970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7865938]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,27A48405970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2BAD6121C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFCF70CC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2BAD6120008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,27A48405970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF759EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7886D60]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1A96D005970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1E9FEF61C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFCF70EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1E9FEF60008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1A96D005970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7886B08]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1F255C05970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,232E3A21C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFCF70EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,232E3A20008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEBB0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1F255C05970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEB80]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7866D60]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,246C6003978
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,28757D01C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFCF70CC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,28757D00008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,246C6003978
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF759EF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFCF7886D60]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rbx,rdx
mov       rsi,r8
test      rsi,rsi
je        near ptr M01_L13
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,26D2D005970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rsi+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rbx],0
je        short M01_L07
mov       rdx,2ADBEF61C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFCF70EC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2ADBEF60008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,26D2D005970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1CB5E749078
call      qword ptr [7FFCF7875230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rsi,rcx
mov       rdi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,1CB5E749078
test      rsi,rsi
cmove     rsi,rcx
mov       rcx,18ACC803978
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rdi],0
je        short M01_L07
mov       rdx,1CB5E741C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rsi
call      qword ptr [7FFCF70DC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1CB5E740008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,18ACC803978
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2E9FB069078
call      qword ptr [7FFCF7875230]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2E9FB069078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,2A969003978
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2E9FB061C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rdi
call      qword ptr [7FFCF70DC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2E9FB060008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2A969003978
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2A193369078
call      qword ptr [7FFCF7875950]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2A193369078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,26101405970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2A193361C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFCF70DC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2A193360008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,26101405970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,24803EE9078
call      qword ptr [7FFCF7865950]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,24803EE9078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,20776005970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,24803EE1C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFCF70CC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,24803EE0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EBB0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,20776005970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF759EB80]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,297B2E09078
call      qword ptr [7FFCF7876D78]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,297B2E09078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,25721003978
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,297B2E01C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFCF70DC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,297B2E00008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,25721003978
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1793D559078
call      qword ptr [7FFCF7856B20]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1793D559078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,138AB405970
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70BC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1793D551C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFCF70BC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70AB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1793D550008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF758EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,138AB405970
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70BC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF758EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,205AF799078
call      qword ptr [7FFCF7886D78]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,205AF799078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1C51D803978
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,205AF791C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFCF70EC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,205AF790008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1C51D803978
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,19C89F39078
call      qword ptr [7FFCF7886D78]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		if (delimiter == null)
		^^^^^^^^^^^^^^^^^^^^^^
			delimiter = ControlChars.CommaSpace;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rbx,rdx
mov       rsi,r8
test      rsi,rsi
je        near ptr M01_L14
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M01_L14
test      rdi,rdi
je        near ptr M01_L15
M01_L00
 
mov       rcx,15BF8003978
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L16
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L16
M01_L01
 
mov       r13,[rbp-40]
M01_L02
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L11
M01_L03
 
mov       r8d,r12d
mov       r8,[rsi+r8*8+10]
test      r8,r8
je        short M01_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L05
M01_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L05
 
mov       [r13+18],r15d
jmp       short M01_L07
M01_L06
 
mov       rcx,r13
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L12
cmp       r12d,ecx
jge       short M01_L10
cmp       byte ptr [rbx],0
je        short M01_L08
mov       rdx,19C89F31C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L09
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L10
M01_L08
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFCF70EC2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L10
M01_L09
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
add       r12d,1
jo        short M01_L12
cmp       r12d,r14d
jl        near ptr M01_L03
M01_L11
 
mov       rcx,r13
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L13
M01_L12
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L13
 
mov       rcx,rsp
call      M01_L18
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rax,19C89F30008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L15
 
mov       rdi,19C89F39078
jmp       near ptr M01_L00
M01_L16
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L17
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L01
M01_L17
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L02
M01_L18
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,15BF8003978
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L19
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L23
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L20
M01_L19
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L23
M01_L20
 
cmp       qword ptr [r15+20],0
jne       short M01_L21
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L23
M01_L21
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L22
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L23
M01_L22
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L23
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7895200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        short M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L05
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
jmp       short M01_L07
M01_L05
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L06
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L12
M01_L07
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L17
M01_L08
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L06
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L16
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L18
M01_L11
 
add       r13d,r12d
mov       [rbx+18],r13d
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L07
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L09
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L08
M01_L16
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L11
M01_L17
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L11
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
M01_L20
 
mov       ecx,6
call      qword ptr [7FFCF704ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7875200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L16
M01_L06
 
test      esi,esi
je        short M01_L10
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L09
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L11
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L08
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
jmp       short M01_L10
M01_L08
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L09
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L15
jmp       short M01_L13
M01_L11
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L07
M01_L12
 
test      rcx,rcx
je        short M01_L15
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L15
jmp       short M01_L17
M01_L13
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L24
jmp       short M01_L12
M01_L14
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L16
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L17
 
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L14
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L19
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L20
M01_L18
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L19
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L18
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L18
M01_L21
 
mov       ecx,6
call      qword ptr [7FFCF702ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L12
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7865920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L10
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L10
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L10
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L07
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L05
M01_L04
 
mov       [rbx+18],r13d
jmp       short M01_L07
M01_L05
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L06
 
mov       rcx,rbx
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L11
M01_L08
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L09
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       r15d,1
cmp       r14d,1
jle       short M01_L08
M01_L11
 
test      esi,esi
je        short M01_L13
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L16
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L18
M01_L12
 
mov       [rbx+18],r13d
M01_L13
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       short M01_L19
jmp       near ptr M01_L03
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L12
M01_L16
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L13
M01_L17
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L01
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
M01_L20
 
mov       ecx,6
call      qword ptr [7FFCF701ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7885920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7886AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7886E20]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L05
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       near ptr M01_L18
M01_L05
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L18
M01_L08
 
test      esi,esi
je        short M01_L12
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L11
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        near ptr M01_L04
jmp       short M01_L14
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L14
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L15
 
test      rcx,rcx
je        near ptr M01_L04
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        near ptr M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L17
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L19
M01_L16
 
mov       [rbx+18],r13d
jmp       near ptr M01_L04
M01_L17
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L16
M01_L18
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L19
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L16
M01_L20
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L15
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7876D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rbp,r8
mov       esi,r9d
mov       rdi,[rsp+80]
test      rdi,rdi
je        near ptr M01_L22
mov       r14d,[rdi+8]
test      r14d,r14d
je        near ptr M01_L23
mov       rcx,[rdi+10]
test      rcx,rcx
jne       short M01_L06
M01_L00
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L17
M01_L01
 
test      esi,esi
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rbp]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L03
M01_L02
 
mov       [rbx+18],r13d
jmp       near ptr M01_L10
M01_L03
 
movzx     r8d,word ptr [rbp+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L04
 
mov       rcx,rbx
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L05
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L01
jmp       near ptr M01_L17
M01_L06
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L24
M01_L07
 
test      rcx,rcx
je        near ptr M01_L00
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L00
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L19
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L18
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L11
M01_L08
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L00
M01_L09
 
mov       rcx,rbx
mov       rdx,rbp
mov       r8d,esi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       eax,r15d
mov       rcx,[rdi+rax*8+10]
test      rcx,rcx
je        near ptr M01_L05
jmp       short M01_L12
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L08
M01_L12
 
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L21
M01_L13
 
test      rcx,rcx
je        near ptr M01_L05
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L05
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        near ptr M01_L04
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L20
M01_L14
 
mov       [rbx+18],r13d
jmp       near ptr M01_L05
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rbp
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L02
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L14
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L08
M01_L19
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L00
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L14
M01_L21
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L13
M01_L22
 
mov       ecx,6
call      qword ptr [7FFCF702ED00]
int       3
M01_L23
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L07
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFCF7896D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFCF704ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,24F67FA9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7855200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L15
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF700ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,24B28469084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7855200]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L08
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L14
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L13
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L11
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF700ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2345E859084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7885920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,23BF44D9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7895920]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF704ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2B61A059084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7886AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,24556F99084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7876D48]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF702ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,19404259084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7886AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,1A3A1299084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFCF7886AF0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFCF703ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,20FAB010008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,23CDC4A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2A57C7A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,27021A70008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,19C4BB10008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1C515080008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF714C2E8]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF7180D40]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L02
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L05
M01_L00
 
test      r8,r8
je        short M01_L05
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L05
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L05
M01_L02
 
cmp       r8,40
ja        short M01_L07
M01_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
M01_L05
 
ret
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L05
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L03
jmp       short M01_L04
M01_L09
 
cmp       rcx,rdx
je        short M01_L05
M01_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF714C3A8]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,23E23790008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,19A185F0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1E38A404FD8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75CAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7885290]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF75BE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1E38A405970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,2241C3D0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1E38A405970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1B003C04FD8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75AAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7865290]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF759E958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1B003C05970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1F095D40008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1B003C05970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1EBF9802FE0
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75DAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF78959B0]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF75CE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6EA41F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1EBF9803978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,22C7F6C0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1EBF9803978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,22BCBC04FD8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75BAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF78759B0]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF75AE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E841F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,22BCBC05970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,26C59B30008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,22BCBC05970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,18B67004FD8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75AAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7866B80]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF759E958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,18B67005970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1CBF8FF0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,18B67005970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1B32FC02FE0
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75AAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7866DD8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF759E958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1B32FC03978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1F3C1CC0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1B32FC03978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,25AC3804FD8
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75CAEB0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7886B80]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF75BE958]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E941F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,25AC3805970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,29B51600008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,25AC3805970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1F61A402FE0
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFCF75AA398]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7866DD8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFCF759E640]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFCF6E741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EBB0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1F61A403978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,236AC440008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EBB0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1F61A403978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EB80]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFCF759EB80]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L04
M00_L00
 
mov       ecx,[rsi+1C]
add       ecx,[rsi+18]
test      ecx,ecx
jle       short M00_L01
mov       ecx,[rsi+18]
mov       rdx,[rsi+8]
cmp       [rdx+8],ecx
ja        near ptr M00_L09
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70CC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L01
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1F87AAC0210
call      qword ptr [7FFCF6E76B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L02
 
cmp       qword ptr [rax+8],0
jne       short M00_L03
mov       r8,1B7ECC00438
cmp       qword ptr [r8],0
jne       short M00_L03
mov       r8,1B7ECC00418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L03
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L07
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L05
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L06
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L06
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L05
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L07
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M00_L10
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L08
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L08
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L04
M00_L09
 
mov       ecx,ecx
mov       word ptr [rdx+rcx*2+10],2C
inc       dword ptr [rsi+18]
jmp       near ptr M00_L01
M00_L10
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L08
M00_L11
 
call      qword ptr [7FFCF701EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L02
M00_L13
 
call      qword ptr [7FFCF6FD4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L03
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E76B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF701EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E76B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E76B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1F87AAC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L05
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1A010FD0210
call      qword ptr [7FFCF6E96B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,15F7F000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,15F7F000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L05
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       short M00_L07
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L06
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L09
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L07
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L10
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L08
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L05
M00_L09
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        near ptr M00_L06
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L10
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L08
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L08
M00_L11
 
call      qword ptr [7FFCF703EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF6FF4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E96B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF703EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E96B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E96B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1A010FD0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70BC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,31FD25C0210
call      qword ptr [7FFCF6E66B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,2DF40800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,2DF40800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFCF70AB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFCF700EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF6FC4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70BCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E66B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF700EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E66B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E66B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFCF6F15B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70BCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFCF700E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFCF700E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D14000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF736F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F1D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,31FD25C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70CC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2480B5E0210
call      qword ptr [7FFCF6E76B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,20779800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,20779800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFCF701EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF6FD4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E76B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF701EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E76B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E76B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L02
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
cmp       r8,40
ja        short M03_L06
M03_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L05
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L00
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L03
jmp       short M03_L04
M03_L08
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L09
 
jmp       qword ptr [7FFCF6F25B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M03_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M03_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70CCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFCF701E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFCF701E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D24000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF737F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F2D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2480B5E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,23A86E50210
call      qword ptr [7FFCF6EA6B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1F9F5000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1F9F5000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFCF704EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF7004030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6EA6B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF704EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6EA6B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6EA6B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFCF6F55B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFCF704E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFCF704E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D54000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF73AF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F5D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,23A86E50008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1685E540210
call      qword ptr [7FFCF6E86B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,127D0400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,127D0400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFCF702EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF6FE4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E86B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF702EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E86B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E86B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,1685E540008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2443C470210
call      qword ptr [7FFCF6E96B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,203AE400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,203AE400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFCF703EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF6FF4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E96B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF703EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E96B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E96B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFCF6F45B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFCF703E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFCF703E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D44000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF739F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F4D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2443C470008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFCF70DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,25836CF0210
call      qword ptr [7FFCF6E86B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,217A9000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,217A9000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFCF702EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFCF6FE4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E86B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFCF702EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E86B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFCF6E86B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFCF6F35B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFCF70DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186D1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFCF702E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFCF702E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,186A1
mov       rdx,7FFCF6D34000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFCF738F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFCF6F3D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,25836CF0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFD618041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFD61817B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFD61818B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7865200]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,24E89C03978
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70CC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,28F1B8E0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,24E89C03978
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7865200]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1B51FC05970
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F25B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFCF70CCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70CC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFCF70BB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1F5ADBF0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF759EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1B51FC05970
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70CC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF759EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7895920]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,15EC7403978
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,19F59480008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,15EC7403978
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7875920]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,17954805970
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1B9E6820008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AF330]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,17954805970
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75AF300]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7886D48]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,21077805970
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,251057E0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,21077805970
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7876D48]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,24881005970
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70DC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,28912E60008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,24881005970
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7886AF0]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,20067805970
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,240F5820008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,20067805970
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFCF7886D48]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,20E2B805970
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F45B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFCF70ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFCF70DB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFCF70EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,24EBD7E0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,20E2B805970
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFCF70EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFCF75BEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7855290]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6E641F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,16C27003978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70BC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70AB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,1ACB9100008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF758EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,16C27003978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70BC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF758EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7875290]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6E841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1D26EC05970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,212FCAF0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1D26EC05970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF78959B0]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6EA41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,21CF5C03978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,25D87B80008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,21CF5C03978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF78959B0]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6EA41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1860B003978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,1C69CE40008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEBB0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1860B003978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEB80]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7876DD8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6E841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,27B4C005970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2BBDDDF0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,27B4C005970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7876B80]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6E841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,27FAA405970
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F35B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70CB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2C03C150008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,27FAA405970
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70DC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75AEE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7856DD8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6E641F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,22E23003978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70BC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F15B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFCF70BCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70AB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,26EB50E0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF758EEC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,22E23003978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70BC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF758EE98]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.13 (8.0.1325.6609), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFCF7896DD8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFCF6EA41F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,22C47403978
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFCF6F55B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFCF70FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFCF70EB0F0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,26CD93A0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEF40]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,22C47403978
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFCF70FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFCF75CEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret